const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CopyPlugin = require("copy-webpack-plugin");
const outputDir = path.resolve(__dirname,"../build");
module.exports = {
	// 1- 入口
	entry:path.resolve(__dirname,"../src/app.js"),
	// 2- 出口
	output:{
		// 设置出口目录
		path:outputDir,
		// 打包生成的JS文件名字
		filename:"bang.min.js",
		// 在生成打包文件前先将输出目录清空
		clean:true,
		// 引入需要的文件时路径 以/开头。（文件确保来自于站点根目录。）
		publicPath:"/"
	},
	// 3- loader
	module: {
		rules: [
			{
				test: /\.ejs$/,
				loader: 'ejs-loader',// 可以将.ejs结尾的文件当作模块去处理
				options: {
					// 设置变量的名字
					variable: '$'
				}
			}
		]
	},
	// 4- 插件
	plugins:[
		new HtmlWebpackPlugin({
			// 网站标题
			title:"大海大广告管理系统",
			// 指定模板页地址
			template:path.resolve(__dirname,"../public/index.html"),
			// 将js在body元素底部引入
			inject:"body",
			// 引入JS地址增加后缀
			hash:true,
			// 丑化
			minify:{
				// 移除注释
				removeComments:true,
				// 移除双引号
				removeAttributeQuotes:true,
				// 折叠代码以及移除空行
				collapseWhitespace:true
			}
		}),
		new CopyPlugin({
			patterns: [
				{
					// 指定复制的目录
					from: path.resolve(__dirname,"../public"),
					// 指定复制目标目录
					to: outputDir,
					globOptions: {
						ignore: ["**/index.html"],
					},
				},
			],
		}),
	],
	// 5- mode
	mode:"production"
}